package org.vergil.core.mq.springMq;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Service;

import javax.jms.*;

/**
 * Created by vergil on 3/4/17.
 */
@Service
public class ProducerService {

    @Autowired
    private JmsTemplate jmsTemplate;

    @Autowired
    @Qualifier("sessionAwareQueue")
    private Destination responseDestination;

    public void sendMessage(Destination destination, final String message) {
        System.out.println("---------------生产者发送消息-----------------");
        System.out.println("---------------生产者发了一个消息：" + message);
        jmsTemplate.send(destination, new MessageCreator() {
            public Message createMessage(Session session) throws JMSException {
                TextMessage textMessage = session.createTextMessage(message);
                /*可以通过发送的Message的setJMSReplyTo方法指定该消息对应的回复消息的目的地。
                 这里我们把我们的生产者发送消息的代码做一下修改，
                 在发送消息之前先指定该消息对应的回复目的地为一个叫responseQueue的队列目的地
                 */
//                textMessage.setJMSReplyTo(responseDestination);
                return textMessage;
            }
        });
    }
}
